package com.it.entity.Verification;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 核赔信息表（对理算结果的审核确认记录）
 * </p>
 *
 * @author yzy
 * @since 2025年09月24日
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("ai_claim_verification")
public class AiClaimVerification implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 核赔唯一ID（编码规则：VERIFY+日期+6位序列号）
     */
    @TableId(value = "verification_id", type = IdType.AUTO)
    private String verificationId;

    /**
     * 关联报案ID（管理报案表）
     */
    @TableField("report_no")
    private String reportNo;

    /**
     * 关联理算ID（关联理算表）
     */
    @TableField("calculation_id")
    private String calculationId;

    /**
     * 关联立案ID（冗余字段）
     */
    @TableField("registration_id")
    private String registrationId;

    /**
     * 关联保单编号（冗余字段）
     */
    @TableField("policy_id")
    private String policyId;

    /**
     * 关联投保人ID（冗余字段）
     */
    @TableField("insured_id")
    private String insuredId;

    /**
     * 核赔员ID（关联工作人员表）
     */
    @TableField("verifier_id")
    private String verifierId;

    /**
     * 核赔时间
     */
    @TableField("verification_time")
    private LocalDateTime verificationTime;

    /**
     * 理算建议赔付金额（取自理算表）
     */
    @TableField("claimed_amount")
    private BigDecimal claimedAmount;

    /**
     * 保单总保额（取自投保单表）
     */
    @TableField("policy_sum_insured")
    private BigDecimal policySumInsured;

    /**
     * 理算核定损失率（取自理算表）
     */
    @TableField("loss_rate")
    private BigDecimal lossRate;

    /**
     * 核赔结果（1-同意，2-调整，3-驳回）
     */
    @TableField("verification_result")
    private Integer verificationResult;

    /**
     * 调整后赔付金额（仅当verification_result=2时填写）
     */
    @TableField("adjusted_amount")
    private BigDecimal adjustedAmount;

    /**
     * 最终核定赔付金额（同意时=理算金额，调整时=调整后金额）
     */
    @TableField("final_pay_amount")
    private BigDecimal finalPayAmount;

    /**
     * 核赔意见（如：理算符合条款约定，同意赔付；或：损失率核定偏高，建议调整为70%）
     */
    @TableField("verification_opinion")
    private String verificationOpinion;

    /**
     * 核赔依据（如：保单条款第6条、查勘报告第3项、农业保险核赔规范）
     */
    @TableField("verification_basis")
    private String verificationBasis;

    /**
     * 核赔状态（1-核赔中，2-已完成）
     */
    @TableField("verification_status")
    private Integer verificationStatus;


}
